home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Benchmarks / pri2.w < prev    next >
Encoding:
Text File  |  1989-04-14  |  2.0 KB  |  141 lines

  1. procedure  main/0
  2.  
  3. _608:
  4.     put_constant  &98,X1
  5.     put_variable_y  Y1,X2
  6.     call  primes/2,1
  7.     put_unsafe_value  Y1,X1
  8.     escape  write/1
  9.     escape  nl/0
  10.     proceed
  11.  
  12.  
  13. procedure  primes/2
  14.  
  15. _1217:
  16.     get_variable_x  X3,X1
  17.     get_variable_y  Y1,X2
  18.     put_constant  &2,X1
  19.     put_value_x  X3,X2
  20.     put_variable_y  Y2,X3
  21.     call  integers/3,2
  22.     put_unsafe_value  Y2,X1
  23.     put_value_y  Y1,X2
  24.     execute_proc  sift/2
  25.  
  26.  
  27. procedure  integers/3
  28.  
  29. _1824:
  30.     try_me_else  _1829,3
  31. _1833:
  32.     get_variable_x  X4,X1
  33.     get_variable_x  X5,X2
  34.     get_list  X3
  35.     unify_value_x  X4
  36.     unify_variable_x  X6
  37.     put_value_x  X4,X1
  38.     put_value_x  X5,X2
  39.     escape  =</2
  40.     cut
  41.     put_variable_x  X1,X1
  42.     put_value_x  X4,X2
  43.     put_constant  +,X3
  44.     put_constant  &1,X4
  45.     escape  is/4
  46.     put_value_x  X5,X2
  47.     put_value_x  X6,X3
  48.     execute_proc  integers/3
  49. _1829:
  50.     trust_me_else  fail
  51. _1980:
  52.     get_nil  X3
  53.     proceed
  54.  
  55.  
  56. procedure  sift/2
  57.  
  58.     switch_on_term  _2706,_2707,fail
  59. _2712:
  60.     try_me_else  _2717,2
  61. _2706:
  62.     get_nil  X1
  63.     get_nil  X2
  64.     proceed
  65. _2717:
  66.     trust_me_else  fail
  67. _2707:
  68.     get_list  X1
  69.     unify_variable_x  X1
  70.     unify_variable_x  X3
  71.     get_list  X2
  72.     unify_value_x  X1
  73.     unify_variable_y  Y1
  74.     put_value_x  X3,X2
  75.     put_variable_y  Y2,X3
  76.     call  remove/3,2
  77.     put_unsafe_value  Y2,X1
  78.     put_value_y  Y1,X2
  79.     execute_proc  sift/2
  80.  
  81.  
  82. procedure  remove/3
  83.  
  84. _4241:
  85.     try_me_else  _4246,3
  86. _4250:
  87.     get_nil  X2
  88.     get_nil  X3
  89.     proceed
  90. _4246:
  91.     retry_me_else  _4273
  92. _4277:
  93.     get_variable_x  X4,X1
  94.     get_variable_x  X5,X3
  95.     get_list  X2
  96.     unify_variable_x  X2
  97.     unify_variable_x  X6
  98.     put_constant  &0,X1
  99.     put_constant  mod,X3
  100.     escape  is/4
  101.     cut
  102.     put_value_x  X4,X1
  103.     put_value_x  X6,X2
  104.     put_value_x  X5,X3
  105.     execute_proc  remove/3
  106. _4273:
  107.     trust_me_else  fail
  108. _4389:
  109.     get_variable_y  Y3,X1
  110.     get_list  X2
  111.     unify_variable_x  X2
  112.     unify_variable_y  Y2
  113.     get_list  X3
  114.     unify_value_x  X2
  115.     unify_variable_y  Y1
  116.     call  _dummy_0/2,3
  117.     cut
  118.     put_value_y  Y3,X1
  119.     put_value_y  Y2,X2
  120.     put_value_y  Y1,X3
  121.     execute_proc  remove/3
  122.  
  123.  
  124. procedure  _dummy_0/2
  125.  
  126. _5045:
  127.     try_me_else  _5050,2
  128. _5054:
  129.     get_variable_x  X4,X1
  130.     put_constant  &0,X1
  131.     put_constant  mod,X3
  132.     escape  is/4
  133.     cut
  134.     fail
  135. _5050:
  136.     trust_me_else  fail
  137. _5105:
  138.     proceed
  139.  
  140.  
  141.